package org.suwenqian.airoleplayingchatbackend.dao.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 知识库实体类，对应数据库中的角色专属知识库表。
 * 包含知识条目的基本信息，如关键词、内容、优先级等。
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@TableName("knowledge_base")
public class KnowledgeBaseDO {
    /**
     * 知识条目唯一标识ID，主键，自增。
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    /**
     * 外键，关联到roles表的id，指明此知识属于哪个角色，不能为空。
     */
    private Long roleId;

    /**
     * 触发此知识的关键词列表，以英文逗号分隔，不能为空。
     */
    private String keyWords;

    /**
     * 知识的具体内容，长度建议不超过2000字符，不能为空。
     */
    private String content;

    /**
     * 知识点的优先级（0-100），数值越高在Prompt中越靠前，默认为50。
     */
    private Integer priority;

    /**
     * 该条知识是否启用，1启用，0禁用，默认为1。
     */
    private Integer isEnabled;

    /**
     * 创建时间，默认值为当前时间戳。
     */
    private LocalDateTime createdAt;

    /**
     * 最后更新时间，默认值为当前时间戳，并在更新时自动更新。
     */
    private LocalDateTime updatedAt;

}
